`timescale 1ns / 1ps
/////////////////////////////////////////////////////////////////////////////
////                                                                     ////
//// Instituto Tecnologico de Costa Rica                                 ////
////                                                                     ////
//// Walk Register                                                       ////
////                                                                     ////
//// Este archivo es parte del proyecto: Control de luces de semaforo    ////
//// http://repositorio-charmander.googlecode.com/svn/trunk/             ////
////                                                                     ////
//// Descripcion                                                         ////
//// Implementacion de un control de luces de semaforo como un proyecto  ////
//// del curso de Taller de Diseño Logico.                               ////
////                                                                     ////
//// Funcionamiento:                                                     ////
//// - Modulo encargado de procesar las solicitudes del paso peatonal.   ////
////   Este tiene que estar en contacto con la FSM, ya que esta es la    ////
////   que le indicara si puede o no procesar la solicitud del peaton.   ////
////                                                                     ////                                    
//// Autores:                                                            ////
//// - Gia Chen, kathya0812@gmail.com                                    ////
////   Edgar Rojas, edtec217@gmail.com                                   ////
////                                                                     ////
/////////////////////////////////////////////////////////////////////////////

module WalkRegister( _clk_i, WR_sync_i, Walk_Request_o, _WR_rst_i, _sync_rst_i);
	 
	 //ENTRADAS
	 //Clock
	 input _clk_i;
	 //Peticion de paso
	 input WR_sync_i;
    //Indica si puede o no recibir peticiones
	 input _WR_rst_i;
	 
	 //SALIDAS
	 //Resultado de procesar la solicitud de paso
	 output reg Walk_Request_o;
	 
	 //RESET
	 input _sync_rst_i;
	 
	 //Si el reloj esta en positivo y el reset general no esta activado
	 //se revisa si hay que modificar el hecho de poder o no aceptar nuevas
	 //solicitudes; despues de fijarse se procede a verificar si puede o no
	 //aceptarlas. De ser así y una nueva solicitud le ingresa, notifica a la FSM
	 always @ (posedge _clk_i)
	 begin
		if (_sync_rst_i)
			Walk_Request_o <= 0;
		else
			if (_WR_rst_i)
				Walk_Request_o <= 0;
			if (WR_sync_i)
				Walk_Request_o <= WR_sync_i;
	 end 
endmodule
